/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sistema_fuzzy;

import java.awt.Point;
import java.util.List;
import javax.swing.JLabel;

/**
 *
 * @author Thay
 */
public class Robo extends JLabel {

    private Sonar sonar;
    private InfraVermelho infra;

    public Robo() {
        sonar = new Sonar();
        infra = new InfraVermelho();
    }

    public InfraVermelho getInfra() {
        return infra;
    }

    public void setInfra(InfraVermelho infra) {
        this.infra = infra;
    }

    public Sonar getSonar() {
        return sonar;
    }

    public void setSonar(Sonar sonar) {
        this.sonar = sonar;
    }

    public void movimentar(int tecla, double vel) {
        int velocidade = (int) vel;

        switch (tecla) {
            case 37:    // Seta para a DIREITA
                if (this.getLocation().x > 0) {
                    this.setLocation(
                            new Point(this.getLocation().x - velocidade, this.getLocation().y));
                }
                break;
            case 38:    // Seta para CIMA
                if (this.getLocation().y > 0) {
                    this.setLocation(
                            new Point(this.getLocation().x, this.getLocation().y - velocidade));
                }
                break;
            case 39:    // Seta para a ESQUERDA
                if (this.getLocation().x < 2000) {
                    this.setLocation(
                            new Point(this.getLocation().x + velocidade, this.getLocation().y));
                }
                break;
            case 40:    // Seta para BAIXO
                if (this.getLocation().y < 2000) {
                    this.setLocation(
                            new Point(this.getLocation().x, this.getLocation().y + velocidade));
                }
                break;
            }
    }

    public double[] analisarTerreno(List<Point> obstaculo, int deslocamento) {
        double[] distanciasSensores = new double[2];
        distanciasSensores[0] = infra.calcularDistancia(this.getLocation(), obstaculo, deslocamento);
        distanciasSensores[1] = sonar.calcularDistancia(this.getLocation(), obstaculo, deslocamento);
        return distanciasSensores;
    }
}
